package com.mm.cloth.utils;

import android.util.Log;

import com.mm.cloth.model.response.LoginResponse;
import com.mm.cloth.model.response.ServerLoginResponse;

/**
 * 响应转换工具类
 * 用于将服务器响应模型转换为应用内部使用的模型
 */
public class ResponseConverter {
    
    private static final String TAG = "ResponseConverter";
    
    /**
     * 将ServerLoginResponse转换为LoginResponse
     * @param serverResponse 服务器登录响应
     * @return 应用内部使用的登录响应
     */
    public static LoginResponse convertLoginResponse(ServerLoginResponse serverResponse) {
        if (serverResponse == null) {
            Log.e(TAG, "无法转换登录响应：服务器响应为null");
            return null;
        }
        
        try {
            LoginResponse loginResponse = new LoginResponse();
            
            // 设置令牌
            loginResponse.setToken(serverResponse.getToken());
            
            // 获取用户信息
            ServerLoginResponse.User user = serverResponse.getUser();
            if (user != null) {
                // 设置用户ID
                loginResponse.setUserId(String.valueOf(user.getId()));
                
                // 设置用户名
                loginResponse.setUsername(user.getUsername());
                
                // 设置昵称
                loginResponse.setNickname(user.getNickname());
                
                // 设置头像
                loginResponse.setAvatar(user.getAvatar());
            } else {
                Log.w(TAG, "服务器响应中的用户信息为null");
            }
            
            return loginResponse;
        } catch (Exception e) {
            Log.e(TAG, "转换登录响应失败: " + e.getMessage(), e);
            return null;
        }
    }
}